挑战赛#18全题解来咯!!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
前言
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
本蒟蒻第一次写挑战赛题解,希望各位大佬们多多指点。
@AC君给个周边吧,写这篇题解真的用了很长时间!!
好啦,废话不多说,进入正题!!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
难度分布与知识点
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
本次挑战赛难度适中,在此感谢出题人@NOONMAPLE,让我这样的蒟蒻都可以AK挑战赛,成就感满满!,题目难度与考察知识点如下:
题目名称 题目难度 考察知识点 午枫爱画画 入门 模拟 午枫爱谦让 普及- 贪心,排序 午枫爱搬家 普及- 二分答案 午枫爱操作 普及/提高- 贪心,字符串 午枫爱迷宫 普及/提高- 广搜 午枫爱37 普及+/提高 动态规划
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
题目解析
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
T1:午枫爱画画
题目大意:给定两个数n、m表示输出井号与星号的次数,交替输出井号与星号直到其中一个输出次数用完,随后一直输出另一字符直到输出次数都用完。
分析与解:直接FOR循环模拟输出即可。
CODE
T2:午枫爱谦让
题目大意:两人交替取出一个长度为偶数的数组中的数,每人每次都会取目前数组中最小的数。问两人最后分别取到的数的总和。
分析与解:将数组SORT排序后遍历并累加即可。注意累加器要开LONG LONG。
CODE
T3:午枫爱搬家
题目大意:两人按顺序搬运n件物品,每件物品有自己的重量,找到一个每次搬运物品重量和的上限x,使得最多k次就能搬完这些物品,求x的最小值。
分析与解:看到题目中“最大货物重量和最小”这个关键句子,就能立马想到用二分解决这道题。每次求一个中间值MID,用SOLVE函数判断这个中间值是否符合要求,若符合,继续找更小的数;若不符合,则往大一点的数找。
CODE
T4:午枫爱操作
讲解这道题之前,先插一句:这道题目读懂了题其实很简单。
题目大意:(这道题目有点难读懂,注意不要漏掉条件了。)
给定一个01字符串,可以对其执行任意次如下操作:
* 选择一段从0开始,到1结束的区间。
* 对于区间中的每个数(0或1),若为0,则变成1;若为1,则变成0。
最后,将这个字符串转化为二进制,让这个二进制数最大。求最大二进制数对应的字符串。
分析与解:请看下图。
看到这里,你懂了吗?
CODE
T5:午枫爱迷宫
题目大意:本题题目信息量较大,请自行查看题目。(点击上方题目)
分析与解:广搜。将题目分为四个阶段:
1. 小午(N)到钥匙(!)
2.钥匙(!)到小枫(M)
3.小枫(M)到出口(@)
4.小午(N)到出口(@)-->小午独自逃出迷宫
随后对与每个阶段都进行一遍广搜即可。
CODE
T6:午枫爱37
题目大意:从n张卡片中选任意个数,求能使得这些数的和为21的倍数的取法有多少种。(答案对 998244353 取模)
分析与解:动态规划。既是3的倍数又是7的倍数,即为21的倍数。DP[I]表示总和模21余I的方案数,动态转移方程也很好推出了(请看代码)
注意:本题中只考虑卡片上的数模21的余数,DP[0]开始时要赋值为1。我这里使用滚动数组优化空间。
CODE
啊!终于写完了!@AC君给个周边吧!!!